import { useAppStore } from '@/stores/app'

/**
 * 设置路由守卫
 * @param {import('vue-router').Router} router Vue路由实例
 */
export function setupRouterGuards(router) {
  // 全局前置守卫
  router.beforeEach((to, from, next) => {
    const appStore = useAppStore()
    
    // 设置页面标题
    document.title = to.meta.title ? `${to.meta.title} - 应用名称` : '应用名称'
    
    // 权限验证
    const requiresAuth = to.matched.some(record => record.meta.requiresAuth)
    const token = localStorage.getItem('token')
    
    if (requiresAuth && !token) {
      // 需要登录但未登录，重定向到登录页
      next({
        path: '/login',
        query: { redirect: to.fullPath }
      })
    } else {
      // 其他情况正常放行
      next()
    }
  })
  
  // 全局解析守卫
  router.beforeResolve((to, from, next) => {
    // 可以在这里加载数据或检查权限
    next()
  })
  
  // 全局后置钩子
  router.afterEach((to, from) => {
    // 关闭加载状态
    const appStore = useAppStore()
    appStore.setLoading(false)
    
    // 可以在这里进行分析跟踪或日志记录
  })
} 